With the explosive growth of the Internet and with the growth of client-server systems in both business-to-business and business-to-consumer relationships, there has come to be a profound shift in business and consumer expectations regarding availability and reliability of servers and associated data. Historically many systems were batch-oriented, while nowadays systems are updated in real time. Historically many systems provided information to a small number of people who in turn interfaced with large numbers of people; nowadays customers and users expect to be able to obtain information themselves without having to speak to an intermediary. Historically, in batch-oriented systems, it was a straightforward matter to protect against single-point data loss by simply replicating files before or after the batch processing. In present-day systems where continual updating takes place, no single act of replication provides a complete solution to the problem of backups.
A number of approaches have been devised to deal with such needs. One approach, and historically the first approach, was to attempt to make an arbitrarily reliable disk drive or other storage mechanism. Such an approach is uneconomic, however, and even if cost were of no concern, there are natural upper limits on how reliable a particular storage device can be.
A different approach, called RAID (redundant array of independent disks) has proven to be a much better way to attempt to achieve high reliability in data storage. A RAID system will contain as many as about fourteen disk drives, tied together logically. Versions of RAID have been developed which store each item of data several times on each of several different physical drives. In this way, loss of a single physical drive need not result in loss of any data. Indeed, with appropriate software and system design, it is possible to protect against loss of two drives. Still other versions of RAID permit improved data latency, that is, a reduction in the interval between the time that an item of data is desired and the time that the item of data is retrieved.
Stated differently, RAID permits the use of several relatively inexpensive disk drives of non-perfect reliability, in a system which can be shown to be extremely reliable.
The above-mentioned advantages are found regardless of whether particular physical drives are permanently installed or are removable. But with further advances in hardware and software design, it has become possible for drives to be xe2x80x9chot-swappablexe2x80x9d, meaning that a drive or other system component can be removed while the system is operating, and replaced with a new unit. Under software control, the RAID system can offer seamless service while such swaps are taking place.
Given the many advantages of RAID systems, it is unsurprising that RAID systems have come into commercial use. In recent times the popularity of RAID systems has given rise to a great need for RAID systems of ever-greater capacity and storage density. There are competitive pressures to reduce the cost of RAID systems. Now that the logical function of a RAID system is well defined, attention has shifted to improving the enclosures and other infrastructure for the physical disk drives making up a RAID system.
Most RAID systems are rack-mounted, for example on industry-standard nineteen-inch racks. Each system is thus of a width to fit in the rack, and is of a height to accommodate the height of a disk drive. A plurality of disk drives are mounted in the system, parallel to each other and stacked to reach nearly the width of the rack.
One commonly used communications approach is called xe2x80x9cfibre channelxe2x80x9d. A fibre channel communications line is a very high-speed serial data line. The data line may be optical fiber or may be a copper or other metallic serial data line. The fibre channel line may be a loop, thus having some historical similarity to token ring and having some of its advantages such as the absence of collisions (as is expected with ethernet). The fibre channel line may enter a fibre channel switch, in which case pairs of lines connected within the switch enjoy full bandwidth regardless of traffic on other pairs of lines. The fibre channel line uses protocols derived closely from SCSI protocols, thus simplifying system design for those who are familiar with SCSI protocols. Fibre channel loops can be very fast (rivaling gigabit ethernet in speed) and can pass data over distances of at least several thousand feet (thus far exceeding bus length limitations with SCSI buses).
While most disk drives encountered by consumers are designed for IDE or SCSI buses, it is commonplace for disk drives used in high-performance systems to use fibre channel communications. Indeed it is likewise commonplace for each disk drive to have two fibre channel communications ports. This permits higher reliability due to the redundancy of the two fibre channel connections; if one cable or communications line breaks the disk drive can still communicate through the other cable or communications line. Yet a failure that causes loss of connectivity to one of the loops (in some prior art systems) does often leave the system at risk since now the loss of the other loop will lose all connectivity.
While the availability of redundant fibre channel loops permits system function even in the event of loss of one of the fibre channel loops, current pressures to improve system reliability make it desirable to protect not only against single-point failures but also to offer protection against multipoint failures. It is also desirable to maintain connectivity to reach each of the two loops even in the event of any of a variety of single-point failures.
High-performance storage systems fall into a number of categories, including JBOD (Just a Bunch Of Drives), SAN (Storage Area Network), and NAS (Network Attached Storage). Historically these systems have been physically different in many ways, including different enclosures, different motherboards, and different hardware. It has historically been necessary to manufacture and stock a variety of piece parts to provide all of these categories in a high-performance product line. It is desirable to provide a system topology and architecture that permits keeping almost everything the same (mechanically and electronically) and requiring only a change of an I/O module to change the function from JBOD to SAN or NAS.
In a high-performance data storage system, an enclosure contains a multiplicity of disk drives, each of which has two high-speed serial data ports. Respective data lines are provided which connect each of the data ports with a respective high-speed data multiplexer. Importantly, each of the multiplexers is also connected with each of two distinct I/O modules. Failure of either I/O module still permits the remaining I/O module to have serial high-speed connectivity with each of the multiplexers, and thus with each of the data ports on each disk drive. Finally, the overall function of the system may be selected as JBOD (Just a Bunch Of Drives), as SAN (Storage Area Network), or NAS (Network Attached Storage), without requiring any mechanical or electronic change other than the I/O modules.